Generally, a computer program consists of a series of microcode instructions. Each microcode instruction typically contains an operational code field (OPcode field) and a data field. The OPcode field specifies a particular operation for the computer to perform. The data field contains either actual data upon which the instruction will operate or an address in main memory where such data is stored. In the second instance, the address points to a particular data byte which is then used (operated upon) by the instruction. Generally, this data is known in the art as the "operand" of the OPcode. For simplicity, the following discussion assumes the data field contains the actual data to be operated upon by the OPcode.
If a program requires that the data within a data field be altered during program execution, program execution is typically interrupted until the new data is stored within an appropriate data field within memory. Typically, such a data update process is accomplished by a so-called interrupt routine.
For example, consider a program that repetitively executes an instruction that adds a variable to a constant, e.g., a function having the form Y=X+C, where X and Y are variables and C is a constant. The instruction for this operation contains an OPcode specifying that an addition function is to be accomplished and a data field containing the constant C. In particular, the data field is used to supply the constant C as an input to an Arithmetic Logic Unit (ALU) that accomplishes the calculation, e.g., an addition function.
If the value of the constant C, i.e., the data field value, is to be altered during execution of the program, program execution is halted until an instruction updating the constant value is issued by the computer, i.e., an interrupt routine updates the constant value while the main program awaits completion of the update. Upon execution of such an interrupt routine, the data field is updated with a new value. Such an update typically requires one or more clock cycles to accomplish. After the update is completed, main program execution is resumed. Such delay in program execution adversely effects the execution speed of the computer. Moreover, such main program execution delay is especially detrimental to computers that provide real-time processing.
Therefore, a need exists in the art for apparatus and a method that updates the data field information without interrupting main program execution.